home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1997 #3
/
Amiga Plus CD - 1997 - No. 03.iso
/
pd
/
programmierung
/
alienbreed3d2_src
/
cheesesauce
/
abreed3.lha
/
pauseopts
< prev
next >
Wrap
Text File
|
1995-09-04
|
5KB
|
327 lines
; Options:
; FAST buffer on/off
; Floors Gouraud/Textured/Plain
;
; FIRST HALVE SCREEN BRIGHTNESS
move.l frompt,pausept
move.l olddrawpt,d3
add.l #10,d3
move.l d3,pbuffpt
bsr DRAWPAUSESCRN
move.l drawpt,d0
move.l olddrawpt,drawpt
move.l d0,olddrawpt
move.l d0,$dff084
move.l drawpt,a3
; move.l COPSCRNBUFF,a3
adda.w #10,a3
move.l a3,frompt
add.l #104*4*40,a3
move.l a3,midpt
;waitfortop:
; btst.b #0,intreqrl(a6)
; beq waitfortop
; move.w #$1,intreq(a6)
.waitpress
bsr CHANGEPOPTS
tst.b $19(a5)
bne.s .unp
btst #7,$bfe001
bne.s .waitpress
.unp:
.wr2:
tst.b $19(a5)
bne.s .wr2
btst #7,$bfe001
beq.s .wr2
rts
CHECKUPDOWN
btst #1,$dff00c
sne d0
btst #1,$dff00d
sne d1
btst #0,$dff00c
sne d2
btst #0,$dff00d
sne d3
eor.b d0,d2
eor.b d1,d3
moveq #0,d6
move.l #KeyMap,a5
move.b forward_key,d6
tst.b (a5,d6.w)
sne d0
or.b d0,d2
move.b backward_key,d6
tst.b (a5,d6.w)
sne d1
or.b d1,d3
rts
CHANGEPOPTS:
bsr CHECKUPDOWN
tst.b d2
beq.s notopchange
move.w #1,d0
sub.w TOPPOPT,d0
tst.l COPSCRNBUFF
bne.s OKFORFASTBUFFER
clr.w d0
OKFORFASTBUFFER
move.w d0,TOPPOPT
tst.w d0
sne USECOPBUFFER
muls #12,d0
add.l #FBUFFOPTS,d0
move.l d0,a0
move.l #FBUFFOPTLINE,a1
bsr PUTINPLINE
bsr DRAWPAUSESCRN
.WWWWWWWW
bsr CHECKUPDOWN
tst.b d2
bne.s .WWWWWWWW
notopchange:
tst.b d3
beq.s nobotchange
move.w BOTPOPT,d0
addq #1,d0
and.w #3,d0
move.w d0,BOTPOPT
clr.b ANYFLOOR
clr.b GOURSEL
st CLRNOFLOOR
move.l #SimpleFloorLine,THEFLOORLINE
cmp.w #2,d0
bgt.s .nofloor
beq.s .plainfloor
tst.w d0
bgt.s .textureonly
st GOURSEL
.textureonly
move.l #FloorLine,THEFLOORLINE
.plainfloor
st ANYFLOOR
clr.b CLRNOFLOOR
.nofloor:
muls #12,d0
add.l #FLOOROPTS,d0
move.l d0,a0
move.l #FLOOROPTLINE,a1
bsr PUTINPLINE
bsr DRAWPAUSESCRN
billythe
bsr CHECKUPDOWN
tst.b d3
bne.s billythe
nobotchange:
rts
THEFLOORLINE: dc.l FloorLine
USECOPBUFFER: dc.w 0
TOPPOPT: dc.w 0
BOTPOPT: dc.w 0
ANYFLOOR: dc.w 0
PUTINPLINE:
moveq #11,d7
.pppp
move.b (a0)+,(a1)+
dbra d7,.pppp
rts
pbuffpt: dc.l 0
pausept: dc.l 0
DRAWPAUSESCRN:
move.l #PAUSEFONT,a0
move.l #PAUSETXT,a1
move.l pausept,a2
move.l pbuffpt,a3
bsr DRAWPAUSEBLOCK
add.w #4,a2
add.w #4,a3
bsr DRAWPAUSEBLOCK
add.w #4,a2
add.w #4,a3
bsr DRAWPAUSEBLOCK
rts
DRAWPAUSEBLOCK:
move.w #3,d0
.across:
moveq #0,d1
moveq #0,d2
moveq #9,d3
moveq #0,d5
.down:
moveq #0,d4
move.b (a1,d2.w),d4
add.w #12,d2
sub.b #'A',d4
bge .itsalet
moveq #7,d6
.dospc:
move.w (a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,(a2,d5.l)
move.w 4(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,4(a2,d5.l)
move.w 8(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,8(a2,d5.l)
move.w 12(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,12(a2,d5.l)
move.w 16(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,16(a2,d5.l)
move.w 20(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,20(a2,d5.l)
move.w 24(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,24(a2,d5.l)
move.w 28(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
move.w d1,28(a2,d5.l)
add.l #104*4,d5
dbra d6,.dospc
bra .nolet
.itsalet:
asl.w #7,d4
lea (a0,d4.w),a5
moveq #7,d6
.dolet:
move.w (a5)+,d1
bne.s .okpix1
move.w (a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix1:
move.w d1,(a2,d5.l)
move.w (a5)+,d1
bne.s .okpix2
move.w 4(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix2:
move.w d1,4(a2,d5.l)
move.w (a5)+,d1
bne.s .okpix3
move.w 8(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix3:
move.w d1,8(a2,d5.l)
move.w (a5)+,d1
bne.s .okpix4
move.w 12(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix4:
move.w d1,12(a2,d5.l)
move.w (a5)+,d1
bne.s .okpix5
move.w 16(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix5:
move.w d1,16(a2,d5.l)
move.w (a5)+,d1
bne.s .okpix6
move.w 20(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix6:
move.w d1,20(a2,d5.l)
move.w (a5)+,d1
bne.s .okpix7
move.w 24(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix7:
move.w d1,24(a2,d5.l)
move.w (a5)+,d1
bne.s .okpix8
move.w 28(a3,d5.l),d1
and.w #$eee,d1
lsr.w #1,d1
.okpix8:
move.w d1,28(a2,d5.l)
add.l #104*4,d5
dbra d6,.dolet
.nolet:
dbra d3,.down
add.w #4*8,a3
add.w #4*8,a2
addq #1,a1
dbra d0,.across
rts
PAUSETXT:
; 012345678901
dc.b ' ' 0
dc.b ' ' 1
dc.b 'FAST BUFFER' 2
FBUFFOPTLINE:
dc.b ' OFF ' 3
dc.b ' ' 4
dc.b 'FLOOR DETAIL' 5
FLOOROPTLINE:
dc.b ' GOURAUD ' 6
dc.b ' ' 7
dc.b ' ' 8
dc.b ' ' 9
FBUFFOPTS:
dc.b ' OFF '
dc.b ' ON '
FLOOROPTS:
dc.b ' GOURAUD '
dc.b ' TEXTURED '
dc.b 'PLAIN SHADED'
dc.b ' NONE '
PAUSEFONT:
incbin "PAUSEFONT"